package main

import (
	"yundian/internel/app/logic"
	. "yundian/internel/pkg/dbs"
	. "yundian/internel/pkg/dingo"
	"yundian/internel/pkg/dingo/system"
)

func main() {
	TaskSystem := system.New("./configs/adm.yaml").
		Ready(
			NewZapComponent(),   // logger 日志管理
			NewMysqlComponent(), // mysql 连接
			NewRedisComponent(), // redis 连接
			NewTransComponent(), // validator 翻译器
		)

	// 分红表同步结算时间 每天凌晨 00:05 执行
	TaskSystem.Task("5 0 0 * * ?", func() {
		logic.NewTaskLogic().OrderDividendsSyncEndAt()
	})

	// 删除异常分红 每天凌晨 00:10 执行
	TaskSystem.Task("10 0 0 * * ?", func() {
		logic.NewTaskLogic().OrderDividendsDeleteError()
	})

	// 每天下午3点执行
	TaskSystem.Task("0 0 15 * * ?", func() {
		logic.NewTaskLogic().UpdatePlaceLevel() // 评级
		logic.NewTaskLogic().UpdatePlaceEntry() // 计算商户进场费是否达标
	})

	// 同步物流状态 每天8点执行
	TaskSystem.Task("0 0 8 * * *", func() {
		logic.NewTaskLogic().SyncLogisticsStatus()
	})

	// 同步订单 每天9点
	TaskSystem.Task("0 0 9 * * *", func() {
		logic.NewTaskLogic().HandelSyncOrders()
	})

	// 解绑异常设备
	TaskSystem.Task("0 55 9 * * *", func() {
		logic.NewTaskLogic().SyncUnbindAbnormalDevices()
	})

	// 同步网点激活状态 每分钟第30秒执行
	TaskSystem.Task("30 * * * * *", func() {
		logic.NewTaskLogic().SyncPlaceActiveStatus()
	})

	// 订单关联表结算日期同步 每小时第15,25,35,45,55分钟
	TaskSystem.Task("45 15,25,35,45,55 * * * *", func() {
		logic.NewTaskLogic().OrderRelevanceSyncDate()
	})

	// 微信消息推送-好评订阅 每天17点
	TaskSystem.Task("15 15 17 * * *", func() {
		logic.NewTaskLogic().WeChatAppletMessageFixedPush(1)
	})

	// 微信消息推送 每30秒执行
	TaskSystem.Task("10,40 * * * * *", func() {
		logic.NewTaskLogic().WeChatAppletMessagePush()
	})

	// 订单关联表自动同步 每10秒同步一次
	TaskSystem.Task("0,10,20,30,40,50 * * * * *", func() {
		logic.NewTaskLogic().OrderRelevanceSyncData()
	})

	// 客房超市自动取消订单 每10秒同步一次
	TaskSystem.Task("5,15,25,35,45,55 * * * * *", func() {
		logic.NewTaskLogic().GoodsAutoCancelOrder()
	})

	// --------------------------------------------------------------------------------------------------------------------- //

	TaskSystem.Go()
}
